Mutation Operators for Concurrent Java (J2SE 5.0)1
نویسندگان
چکیده
The current version of Java (J2SE 5.0) provides a high level of support for concurreny in comparison to previous versions. For example, programmers using J2SE 5.0 can now achieve synchronization between concurrent threads using explicit locks, semaphores, barriers, latches, or exchangers. Furthermore, built-in concurrent data structures such as hash maps and queues, built-in thread pools, and atomic variables are all at the programmer’s disposal. We are interested in using mutation analysis to evaluate, compare and improve quality assurance techniques for concurrent Java programs. Furthermore, we believe that the current set of method mutation operators and class operators proposed in the literature are insufficient to evaluate concurrent Java source code because the majority of operators do not directly mutate the portions of code responsible for synchronization. In this paper we will provide an overview of concurrency constructs in J2SE 5.0 and a new set of concurrent mutation operators. We will justify the operators by categorizing them with an existing bug pattern taxonomy for concurrency. Most of the bug patterns in the taxonomy have been used to classify real bugs in a benchmark of concurrent Java applications.
منابع مشابه
Case Study: Converting to Java 1.5 Type-Safe Collections
The next edition of the Java 2 Platform, Standard Edition (J2SE), formerly known as Java 1.5 but now known as J2SE 5, includes lots and lots of changes: “15 component JSRs with nearly 100 other significant updates,” according to [1] (and see [2] for a link to this and other interesting pages). Just one of those changes is the introduction of generic types. Generic types allow reference types (c...
متن کاملMutant Operators for Testing Concurrent Java Programs
Mutation testing is a fault-based testing technique that has been widely studied in the last decades. One reason for the interest of the scientific community in mutation testing is its flexibility. It can be applied to programs at unit and integration testing levels, as well as to software specifications written in a variety of different languages. A fundamental issue to make mutation testing w...
متن کاملCitation for published version Utting , Ian ( 2006 ) Problems in the Initital Teaching of Programming
In their analysis of the use of Java as a first teaching language, the ACM Java Task Force (JTF) identified a number of issues with the Java language and APIs which caused significant pedagogic problems. The focus of their work, and hence of their characterisation of the issues, was the Java Standard Edition (J2SE). This paper contends that the version of Java designed for programming small d...
متن کاملOvercoming Channel Bandwidth Constraints in Secure SIM Applications
In this paper we present an architecture based on a Java (J2SE, J2EE, J2ME and Java Card) platform supporting a secure channel from a Mobile Operator to the SIM card. This channel offers the possibility of end to end security for delivery of large data files to a GSM SIM card. Such a secure channel could be used for delivery of high value content that requires a high bandwidth channel – perhaps...
متن کاملOpportunities and Challenges with J2SE 5 for Introductory Programming Teaching
The recent release of the Java version 5.0 "Tiger" introduces some significant language changes. For educators, some of these changes provide opportunities to improve teaching, while others pose additional problems that require awareness to avoid them. The authors have recently completed the inclusion of support for all new language features into a wellknown educational IDE for Java – BlueJ – a...
متن کامل